//---------------------------------------------------------------------------

#ifndef CommonClassH
#define CommonClassH

#include <vector.h>

#include "CoFunction.h"
#include "TOccupy.h"
#include "TIO.h"
#include "AdvGrid.hpp"

//---------------------------------------------------------------------------
class TPassTrack
{
private:
	unsigned short MinTrackNumber;
	unsigned short MaxTrackNumber;
	bool AllTrack;
public:
	__fastcall TPassTrack();
	void __fastcall SetMinMaxTrack(unsigned short MinTrack, unsigned short MaxTrack);
	void __fastcall SetAllTrack(void);
	bool __fastcall PassIt(const unsigned short CutTrackNumber);

	TPassTrack & __fastcall operator = (const TPassTrack & t);

	void __fastcall Save(const int Handle);
	void __fastcall Load(const int handle);
};






//---------------------------------------------------------------------------
class ArrayItems : public vector<float>
{
private:
	iterator p;
public:
	void __fastcall Delete(const int Index);
	void __fastcall Insert(const int Index, const float Item);
	void __fastcall Move(const int From, const int To);
	void __fastcall ToFirst(const int Index);
	void __fastcall ToLast(const int Index);
	void __fastcall ToPrevious(const int Index);
	void __fastcall ToNext(const int Index);
	void __fastcall WriteAdvStringGrid(TAdvStringGrid * AdvStringGrid);
	void __fastcall ReadAdvStringGrid(TAdvStringGrid * AdvStringGrid);
};

class Array : public vector<ArrayItems>
{
private:
	iterator p;
public:
	void __fastcall Delete(const unsigned short Index);
	void __fastcall InsertNew(const int Index);
	void __fastcall Insert(const unsigned short Index, ArrayItems Datas);
	void __fastcall Move(const int From, const int To);
	void __fastcall ToFirst(const int Index);
	void __fastcall ToLast(const int Index);
	void __fastcall ToPrevious(const int Index);
	void __fastcall ToNext(const int Index);
	void __fastcall AddNew(void);
};


#endif
